/*mousewheel*/
(function(a) {
    function d(b) {
		
        var c = b || window.event, d = [].slice.call(arguments, 1), e = 0, f = !0, g = 0, h = 0;
        return b = a.event.fix(c), b.type = "mousewheel", c.wheelDelta && (e = c.wheelDelta / 120), 
        c.detail && (e = -c.detail / 3), h = e, c.axis !== undefined && c.axis === c.HORIZONTAL_AXIS && (h = 0, 
        g = -1 * e), c.wheelDeltaY !== undefined && (h = c.wheelDeltaY / 120), c.wheelDeltaX !== undefined && (g = -1 * c.wheelDeltaX / 120), 
        d.unshift(b, e, g, h), (a.event.dispatch || a.event.handle).apply(this, d);
    }
    var b = [ "DOMMouseScroll", "mousewheel" ];
    if (a.event.fixHooks) for (var c = b.length; c; ) a.event.fixHooks[b[--c]] = a.event.mouseHooks;
    a.event.special.mousewheel = {
        setup:function() {
            if (this.addEventListener) for (var a = b.length; a; ) this.addEventListener(b[--a], d, !1); else this.onmousewheel = d;
        },
        teardown:function() {
            if (this.removeEventListener) for (var a = b.length; a; ) this.removeEventListener(b[--a], d, !1); else this.onmousewheel = null;
        }
    }, a.fn.extend({
        mousewheel:function(a) {
            return a ? this.bind("mousewheel", a) :this.trigger("mousewheel");
        },
        unmousewheel:function(a) {
            return this.unbind("mousewheel", a);
        }
    });
})(jQ);

/*custom scrollbar*/
(function(c) {
    var b = {
        init:function(e) {
            var f = {
                set_width:false,
                set_height:false,
                horizontalScroll:false,
                scrollInertia:950,
                mouseWheel:true,
                mouseWheelPixels:"auto",
                autoDraggerLength:true,
                autoHideScrollbar:false,
                alwaysShowScrollbar:false,
                snapAmount:null,
                snapOffset:0,
                scrollButtons:{
                    enable:false,
                    scrollType:"continuous",
                    scrollSpeed:"auto",
                    scrollAmount:40
                },
                advanced:{
                    updateOnBrowserResize:true,
                    updateOnContentResize:false,
                    autoExpandHorizontalScroll:false,
                    autoScrollOnFocus:true,
                    normalizeMouseWheelDelta:false
                },
                contentTouchScroll:true,
                callbacks:{
                    onScrollStart:function() {},
                    onScroll:function() {},
                    onTotalScroll:function() {},
                    onTotalScrollBack:function() {},
                    onTotalScrollOffset:0,
                    onTotalScrollBackOffset:0,
                    whileScrolling:function() {}
                },
                theme:"light"
            }, e = c.extend(true, f, e);
            return this.each(function() {
                var m = c(this);
                if (e.set_width) {
                    m.css("width", e.set_width);
                }
                if (e.set_height) {
                    m.css("height", e.set_height);
                }
                if (!c(document).data("mCustomScrollbar-index")) {
                    c(document).data("mCustomScrollbar-index", "1");
                } else {
                    var t = parseInt(c(document).data("mCustomScrollbar-index"));
                    c(document).data("mCustomScrollbar-index", t + 1);
                }
                m.wrapInner("<div class='mCustomScrollBox mCS-" + e.theme + "' id='mCSB_" + c(document).data("mCustomScrollbar-index") + "' style='position:relative; height:100%; overflow:hidden; width:100%;' />").addClass("mCustomScrollbar _mCS_" + c(document).data("mCustomScrollbar-index"));
                var g = m.children(".mCustomScrollBox");
                if (e.horizontalScroll) {
                    g.addClass("mCSB_horizontal").wrapInner("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />");
                    var k = g.children(".mCSB_h_wrapper");
                    k.wrapInner("<div class='mCSB_container' style='position:absolute; left:0;' />").children(".mCSB_container").css({
                        width:k.children().outerWidth(),
                        position:"relative"
                    }).unwrap();
                } else {
                    g.wrapInner("<div class='mCSB_container' style='position:relative; top:0;' />");
                }
                var o = g.children(".mCSB_container");
                if (c.support.touch) {
                    o.addClass("mCS_touch");
                }
                o.after("<div class='mCSB_scrollTools' style='position:absolute;'><div class='mCSB_draggerContainer'><div class='mCSB_dragger' style='position:absolute;' oncontextmenu='return false;'><div class='mCSB_dragger_bar' style='position:relative;'></div></div><div class='mCSB_draggerRail'></div></div></div>");
                var l = g.children(".mCSB_scrollTools"), h = l.children(".mCSB_draggerContainer"), q = h.children(".mCSB_dragger");
                if (e.horizontalScroll) {
                    q.data("minDraggerWidth", q.width());
                } else {
                    q.data("minDraggerHeight", q.height());
                }
                if (e.scrollButtons.enable) {
                    if (e.horizontalScroll) {
                        l.prepend("<a class='mCSB_buttonLeft' oncontextmenu='return false;'></a>").append("<a class='mCSB_buttonRight' oncontextmenu='return false;'></a>");
                    } else {
                        l.prepend("<a class='mCSB_buttonUp' oncontextmenu='return false;'></a>").append("<a class='mCSB_buttonDown' oncontextmenu='return false;'></a>");
                    }
                }
                g.bind("scroll", function() {
                    if (!m.is(".mCS_disabled")) {
                        g.scrollTop(0).scrollLeft(0);
                    }
                });
                m.data({
                    mCS_Init:true,
                    mCustomScrollbarIndex:c(document).data("mCustomScrollbar-index"),
                    horizontalScroll:e.horizontalScroll,
                    scrollInertia:e.scrollInertia,
                    scrollEasing:"mcsEaseOut",
                    mouseWheel:e.mouseWheel,
                    mouseWheelPixels:e.mouseWheelPixels,
                    autoDraggerLength:e.autoDraggerLength,
                    autoHideScrollbar:e.autoHideScrollbar,
                    alwaysShowScrollbar:e.alwaysShowScrollbar,
                    snapAmount:e.snapAmount,
                    snapOffset:e.snapOffset,
                    scrollButtons_enable:e.scrollButtons.enable,
                    scrollButtons_scrollType:e.scrollButtons.scrollType,
                    scrollButtons_scrollSpeed:e.scrollButtons.scrollSpeed,
                    scrollButtons_scrollAmount:e.scrollButtons.scrollAmount,
                    autoExpandHorizontalScroll:e.advanced.autoExpandHorizontalScroll,
                    autoScrollOnFocus:e.advanced.autoScrollOnFocus,
                    normalizeMouseWheelDelta:e.advanced.normalizeMouseWheelDelta,
                    contentTouchScroll:e.contentTouchScroll,
                    onScrollStart_Callback:e.callbacks.onScrollStart,
                    onScroll_Callback:e.callbacks.onScroll,
                    onTotalScroll_Callback:e.callbacks.onTotalScroll,
                    onTotalScrollBack_Callback:e.callbacks.onTotalScrollBack,
                    onTotalScroll_Offset:e.callbacks.onTotalScrollOffset,
                    onTotalScrollBack_Offset:e.callbacks.onTotalScrollBackOffset,
                    whileScrolling_Callback:e.callbacks.whileScrolling,
                    bindEvent_scrollbar_drag:false,
                    bindEvent_content_touch:false,
                    bindEvent_scrollbar_click:false,
                    bindEvent_mousewheel:false,
                    bindEvent_buttonsContinuous_y:false,
                    bindEvent_buttonsContinuous_x:false,
                    bindEvent_buttonsPixels_y:false,
                    bindEvent_buttonsPixels_x:false,
                    bindEvent_focusin:false,
                    bindEvent_autoHideScrollbar:false,
                    mCSB_buttonScrollRight:false,
                    mCSB_buttonScrollLeft:false,
                    mCSB_buttonScrollDown:false,
                    mCSB_buttonScrollUp:false
                });
                if (e.horizontalScroll) {
                    if (m.css("max-width") !== "none") {
                        if (!e.advanced.updateOnContentResize) {
                            e.advanced.updateOnContentResize = true;
                        }
                    }
                } else {
                    if (m.css("max-height") !== "none") {
                        var s = false, r = parseInt(m.css("max-height"));
                        if (m.css("max-height").indexOf("%") >= 0) {
                            s = r, r = m.parent().height() * s / 100;
                        }
                        m.css("overflow", "hidden");
                        g.css("max-height", r);
                    }
                }
                m.mCustomScrollbar("update");
                if (e.advanced.updateOnBrowserResize) {
                    var i, j = c(window).width(), u = c(window).height();
                    c(window).bind("resize." + m.data("mCustomScrollbarIndex"), function() {
                        if (i) {
                            clearTimeout(i);
                        }
                        i = setTimeout(function() {
                            if (!m.is(".mCS_disabled") && !m.is(".mCS_destroyed")) {
                                var w = c(window).width(), v = c(window).height();
                                if (j !== w || u !== v) {
                                    if (m.css("max-height") !== "none" && s) {
                                        g.css("max-height", m.parent().height() * s / 100);
                                    }
                                    m.mCustomScrollbar("update");
                                    j = w;
                                    u = v;
                                }
                            }
                        }, 150);
                    });
                }
                if (e.advanced.updateOnContentResize) {
                    var p;
                    if (e.horizontalScroll) {
                        var n = o.outerWidth();
                    } else {
                        var n = o.outerHeight();
                    }
                    p = setInterval(function() {
                        if (e.horizontalScroll) {
                            if (e.advanced.autoExpandHorizontalScroll) {
                                o.css({
                                    position:"absolute",
                                    width:"auto"
                                }).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({
                                    width:o.outerWidth(),
                                    position:"relative"
                                }).unwrap();
                            }
                            var v = o.outerWidth();
                        } else {
                            var v = o.outerHeight();
                        }
                        if (v != n) {
                            m.mCustomScrollbar("update");
                            n = v;
                        }
                    }, 300);
                }
            });
        },
        update:function() {
            var n = c(this), k = n.children(".mCustomScrollBox"), q = k.children(".mCSB_container");
            q.removeClass("mCS_no_scrollbar");
            n.removeClass("mCS_disabled mCS_destroyed");
            k.scrollTop(0).scrollLeft(0);
            var y = k.children(".mCSB_scrollTools"), o = y.children(".mCSB_draggerContainer"), m = o.children(".mCSB_dragger");
            if (n.data("horizontalScroll")) {
                var A = y.children(".mCSB_buttonLeft"), t = y.children(".mCSB_buttonRight"), f = k.width();
                if (n.data("autoExpandHorizontalScroll")) {
                    q.css({
                        position:"absolute",
                        width:"auto"
                    }).wrap("<div class='mCSB_h_wrapper' style='position:relative; left:0; width:999999px;' />").css({
                        width:q.outerWidth(),
                        position:"relative"
                    }).unwrap();
                }
                var z = q.outerWidth();
            } else {
                var w = y.children(".mCSB_buttonUp"), g = y.children(".mCSB_buttonDown"), r = k.height(), i = q.outerHeight();
            }
            if (i > r && !n.data("horizontalScroll")) {
                y.css("display", "block");
                var s = o.height();
                if (n.data("autoDraggerLength")) {
                    var u = Math.round(r / i * s), l = m.data("minDraggerHeight");
                    if (u <= l) {
                        m.css({
                            height:l
                        });
                    } else {
                        if (u >= s - 10) {
                            var p = s - 10;
                            m.css({
                                height:p
                            });
                        } else {
                            m.css({
                                height:50
                            });
                        }
                    }
                    m.children(".mCSB_dragger_bar").css({
                        "line-height":m.height() + "px"
                    });
                }
                var B = m.height(), x = (i - r) / (s - B);
                n.data("scrollAmount", x).mCustomScrollbar("scrolling", k, q, o, m, w, g, A, t);
                var D = Math.abs(q.position().top);
                n.mCustomScrollbar("scrollTo", D, {
                    scrollInertia:0,
                    trigger:"internal"
                });
            } else {
                if (z > f && n.data("horizontalScroll")) {
                    y.css("display", "block");
                    var h = o.width();
                    if (n.data("autoDraggerLength")) {
                        var j = Math.round(f / z * h), C = m.data("minDraggerWidth");
                        if (j <= C) {
                            m.css({
                                width:C
                            });
                        } else {
                            if (j >= h - 10) {
                                var e = h - 10;
                                m.css({
                                    width:e
                                });
                            } else {
                                m.css({
                                    width:j
                                });
                            }
                        }
                    }
                    var v = m.width(), x = (z - f) / (h - v);
                    n.data("scrollAmount", x).mCustomScrollbar("scrolling", k, q, o, m, w, g, A, t);
                    var D = Math.abs(q.position().left);
                    n.mCustomScrollbar("scrollTo", D, {
                        scrollInertia:0,
                        trigger:"internal"
                    });
                } else {
                    k.unbind("mousewheel focusin");
                    if (n.data("horizontalScroll")) {
                        m.add(q).css("left", 0);
                    } else {
                        m.add(q).css("top", 0);
                    }
                    if (n.data("alwaysShowScrollbar")) {
                        if (!n.data("horizontalScroll")) {
                            m.css({
                                height:o.height()
                            });
                        } else {
                            if (n.data("horizontalScroll")) {
                                m.css({
                                    width:o.width()
                                });
                            }
                        }
                    } else {
                        y.css("display", "none");
                        q.addClass("mCS_no_scrollbar");
                    }
                    n.data({
                        bindEvent_mousewheel:false,
                        bindEvent_focusin:false
                    });
                }
            }
        },
        scrolling:function(i, q, n, k, A, f, D, w) {
            var l = c(this);
            if (!l.data("bindEvent_scrollbar_drag")) {
                var o, p, C, z, e;
                if (c.support.pointer) {
                    C = "pointerdown";
                    z = "pointermove";
                    e = "pointerup";
                } else {
                    if (c.support.msPointer) {
                        C = "MSPointerDown";
                        z = "MSPointerMove";
                        e = "MSPointerUp";
                    }
                }
                if (c.support.pointer || c.support.msPointer) {
                    k.bind(C, function(K) {
                        K.preventDefault();
                        l.data({
                            on_drag:true
                        });
                        k.addClass("mCSB_dragger_onDrag");
                        var J = c(this), M = J.offset(), I = K.originalEvent.pageX - M.left, L = K.originalEvent.pageY - M.top;
                        if (I < J.width() && I > 0 && L < J.height() && L > 0) {
                            o = L;
                            p = I;
                        }
                    });
                    c(document).bind(z + "." + l.data("mCustomScrollbarIndex"), function(K) {
                        K.preventDefault();
                        if (l.data("on_drag")) {
                            var J = k, M = J.offset(), I = K.originalEvent.pageX - M.left, L = K.originalEvent.pageY - M.top;
                            G(o, p, L, I);
                        }
                    }).bind(e + "." + l.data("mCustomScrollbarIndex"), function(x) {
                        l.data({
                            on_drag:false
                        });
                        k.removeClass("mCSB_dragger_onDrag");
                    });
                } else {
                    k.bind("mousedown touchstart", function(K) {
                        K.preventDefault();
                        K.stopImmediatePropagation();
                        var J = c(this), N = J.offset(), I, M;
                        if (K.type === "touchstart") {
                            var L = K.originalEvent.touches[0] || K.originalEvent.changedTouches[0];
                            I = L.pageX - N.left;
                            M = L.pageY - N.top;
                        } else {
                            l.data({
                                on_drag:true
                            });
                            k.addClass("mCSB_dragger_onDrag");
                            I = K.pageX - N.left;
                            M = K.pageY - N.top;
                        }
                        if (I < J.width() && I > 0 && M < J.height() && M > 0) {
                            o = M;
                            p = I;
                        }
                    }).bind("touchmove", function(K) {
                        K.preventDefault();
                        K.stopImmediatePropagation();
                        var N = K.originalEvent.touches[0] || K.originalEvent.changedTouches[0], J = c(this), M = J.offset(), I = N.pageX - M.left, L = N.pageY - M.top;
                        G(o, p, L, I);
                    });
                    c(document).bind("mousemove." + l.data("mCustomScrollbarIndex"), function(K) {
                        if (l.data("on_drag")) {
                            var J = k, M = J.offset(), I = K.pageX - M.left, L = K.pageY - M.top;
                            G(o, p, L, I);
                        }
                    }).bind("mouseup." + l.data("mCustomScrollbarIndex"), function(x) {
                        l.data({
                            on_drag:false
                        });
                        k.removeClass("mCSB_dragger_onDrag");
                    });
                }
                l.data({
                    bindEvent_scrollbar_drag:true
                });
            }
            function G(J, K, L, I) {
                if (l.data("horizontalScroll")) {
                    l.mCustomScrollbar("scrollTo", k.position().left - K + I, {
                        moveDragger:true,
                        trigger:"internal"
                    });
                } else {
                    l.mCustomScrollbar("scrollTo", k.position().top - J + L, {
                        moveDragger:true,
                        trigger:"internal"
                    });
                }
            }
            if (c.support.touch && l.data("contentTouchScroll")) {
                if (!l.data("bindEvent_content_touch")) {
                    var m, E, s, t, v, F, H;
                    q.bind("touchstart", function(x) {
                        x.stopImmediatePropagation();
                        m = x.originalEvent.touches[0] || x.originalEvent.changedTouches[0];
                        E = c(this);
                        s = E.offset();
                        v = m.pageX - s.left;
                        t = m.pageY - s.top;
                        F = t;
                        H = v;
                    });
                    q.bind("touchmove", function(x) {
                        x.preventDefault();
                        x.stopImmediatePropagation();
                        m = x.originalEvent.touches[0] || x.originalEvent.changedTouches[0];
                        E = c(this).parent();
                        s = E.offset();
                        v = m.pageX - s.left;
                        t = m.pageY - s.top;
                        if (l.data("horizontalScroll")) {
                            l.mCustomScrollbar("scrollTo", H - v, {
                                trigger:"internal"
                            });
                        } else {
                            l.mCustomScrollbar("scrollTo", F - t, {
                                trigger:"internal"
                            });
                        }
                    });
                }
            }
            if (!l.data("bindEvent_scrollbar_click")) {
                n.bind("click", function(I) {
                    var x = (I.pageY - n.offset().top) * l.data("scrollAmount"), y = c(I.target);
                    if (l.data("horizontalScroll")) {
                        x = (I.pageX - n.offset().left) * l.data("scrollAmount");
                    }
                    if (y.hasClass("mCSB_draggerContainer") || y.hasClass("mCSB_draggerRail")) {
                        l.mCustomScrollbar("scrollTo", x, {
                            trigger:"internal",
                            scrollEasing:"draggerRailEase"
                        });
                    }
                });
                l.data({
                    bindEvent_scrollbar_click:true
                });
            }
            if (l.data("mouseWheel")) {
                if (!l.data("bindEvent_mousewheel")) {
                    i.bind("mousewheel", function(K, M) {
                        var J, I = l.data("mouseWheelPixels"), x = Math.abs(q.position().top), L = k.position().top, y = n.height() - k.height();
                        if (l.data("normalizeMouseWheelDelta")) {
                            if (M < 0) {
                                M = -1;
                            } else {
                                M = 1;
                            }
                        }
                        if (I === "auto") {
                            I = 100 + Math.round(l.data("scrollAmount") / 2);
                        }
                        if (l.data("horizontalScroll")) {
                            L = k.position().left;
                            y = n.width() - k.width();
                            x = Math.abs(q.position().left);
                        }
                        if (M > 0 && L !== 0 || M < 0 && L !== y) {
                            K.preventDefault();
                            K.stopImmediatePropagation();
                        }
                        J = x - M * I;
                        l.mCustomScrollbar("scrollTo", J, {
                            trigger:"internal"
                        });
                    });
                    l.data({
                        bindEvent_mousewheel:true
                    });
                }
            }
            if (l.data("scrollButtons_enable")) {
                if (l.data("scrollButtons_scrollType") === "pixels") {
                    if (l.data("horizontalScroll")) {
                        w.add(D).unbind("mousedown touchstart MSPointerDown pointerdown mouseup MSPointerUp pointerup mouseout MSPointerOut pointerout touchend", j, h);
                        l.data({
                            bindEvent_buttonsContinuous_x:false
                        });
                        if (!l.data("bindEvent_buttonsPixels_x")) {
                            w.bind("click", function(x) {
                                x.preventDefault();
                                r(Math.abs(q.position().left) + l.data("scrollButtons_scrollAmount"));
                            });
                            D.bind("click", function(x) {
                                x.preventDefault();
                                r(Math.abs(q.position().left) - l.data("scrollButtons_scrollAmount"));
                            });
                            l.data({
                                bindEvent_buttonsPixels_x:true
                            });
                        }
                    } else {
                        f.add(A).unbind("mousedown touchstart MSPointerDown pointerdown mouseup MSPointerUp pointerup mouseout MSPointerOut pointerout touchend", j, h);
                        l.data({
                            bindEvent_buttonsContinuous_y:false
                        });
                        if (!l.data("bindEvent_buttonsPixels_y")) {
                            f.bind("click", function(x) {
                                x.preventDefault();
                                r(Math.abs(q.position().top) + l.data("scrollButtons_scrollAmount"));
                            });
                            A.bind("click", function(x) {
                                x.preventDefault();
                                r(Math.abs(q.position().top) - l.data("scrollButtons_scrollAmount"));
                            });
                            l.data({
                                bindEvent_buttonsPixels_y:true
                            });
                        }
                    }
                    function r(x) {
                        if (!k.data("preventAction")) {
                            k.data("preventAction", true);
                            l.mCustomScrollbar("scrollTo", x, {
                                trigger:"internal"
                            });
                        }
                    }
                } else {
                    if (l.data("horizontalScroll")) {
                        w.add(D).unbind("click");
                        l.data({
                            bindEvent_buttonsPixels_x:false
                        });
                        if (!l.data("bindEvent_buttonsContinuous_x")) {
                            w.bind("mousedown touchstart MSPointerDown pointerdown", function(y) {
                                y.preventDefault();
                                var x = B();
                                l.data({
                                    mCSB_buttonScrollRight:setInterval(function() {
                                        l.mCustomScrollbar("scrollTo", Math.abs(q.position().left) + x, {
                                            trigger:"internal",
                                            scrollEasing:"easeOutCirc"
                                        });
                                    }, 17)
                                });
                            });
                            var j = function(x) {
                                x.preventDefault();
                                clearInterval(l.data("mCSB_buttonScrollRight"));
                            };
                            w.bind("mouseup touchend MSPointerUp pointerup mouseout MSPointerOut pointerout", j);
                            D.bind("mousedown touchstart MSPointerDown pointerdown", function(y) {
                                y.preventDefault();
                                var x = B();
                                l.data({
                                    mCSB_buttonScrollLeft:setInterval(function() {
                                        l.mCustomScrollbar("scrollTo", Math.abs(q.position().left) - x, {
                                            trigger:"internal",
                                            scrollEasing:"easeOutCirc"
                                        });
                                    }, 17)
                                });
                            });
                            var h = function(x) {
                                x.preventDefault();
                                clearInterval(l.data("mCSB_buttonScrollLeft"));
                            };
                            D.bind("mouseup touchend MSPointerUp pointerup mouseout MSPointerOut pointerout", h);
                            l.data({
                                bindEvent_buttonsContinuous_x:true
                            });
                        }
                    } else {
                        f.add(A).unbind("click");
                        l.data({
                            bindEvent_buttonsPixels_y:false
                        });
                        if (!l.data("bindEvent_buttonsContinuous_y")) {
                            f.bind("mousedown touchstart MSPointerDown pointerdown", function(y) {
                                y.preventDefault();
                                var x = B();
                                l.data({
                                    mCSB_buttonScrollDown:setInterval(function() {
                                        l.mCustomScrollbar("scrollTo", Math.abs(q.position().top) + x, {
                                            trigger:"internal",
                                            scrollEasing:"easeOutCirc"
                                        });
                                    }, 17)
                                });
                            });
                            var u = function(x) {
                                x.preventDefault();
                                clearInterval(l.data("mCSB_buttonScrollDown"));
                            };
                            f.bind("mouseup touchend MSPointerUp pointerup mouseout MSPointerOut pointerout", u);
                            A.bind("mousedown touchstart MSPointerDown pointerdown", function(y) {
                                y.preventDefault();
                                var x = B();
                                l.data({
                                    mCSB_buttonScrollUp:setInterval(function() {
                                        l.mCustomScrollbar("scrollTo", Math.abs(q.position().top) - x, {
                                            trigger:"internal",
                                            scrollEasing:"easeOutCirc"
                                        });
                                    }, 17)
                                });
                            });
                            var g = function(x) {
                                x.preventDefault();
                                clearInterval(l.data("mCSB_buttonScrollUp"));
                            };
                            A.bind("mouseup touchend MSPointerUp pointerup mouseout MSPointerOut pointerout", g);
                            l.data({
                                bindEvent_buttonsContinuous_y:true
                            });
                        }
                    }
                    function B() {
                        var x = l.data("scrollButtons_scrollSpeed");
                        if (l.data("scrollButtons_scrollSpeed") === "auto") {
                            x = Math.round((l.data("scrollInertia") + 100) / 40);
                        }
                        return x;
                    }
                }
            }
            if (l.data("autoScrollOnFocus")) {
                if (!l.data("bindEvent_focusin")) {
                    i.bind("focusin", function() {
                        i.scrollTop(0).scrollLeft(0);
                        var x = c(document.activeElement);
                        if (x.is("input,textarea,select,button,a[tabindex],area,object")) {
                            var J = q.position().top, y = x.position().top, I = i.height() - x.outerHeight();
                            if (l.data("horizontalScroll")) {
                                J = q.position().left;
                                y = x.position().left;
                                I = i.width() - x.outerWidth();
                            }
                            if (J + y < 0 || J + y > I) {
                                l.mCustomScrollbar("scrollTo", y, {
                                    trigger:"internal"
                                });
                            }
                        }
                    });
                    l.data({
                        bindEvent_focusin:true
                    });
                }
            }
            if (l.data("autoHideScrollbar") && !l.data("alwaysShowScrollbar")) {
                if (!l.data("bindEvent_autoHideScrollbar")) {
                    i.bind("mouseenter", function(x) {
                        i.addClass("mCS-mouse-over");
                        d.showScrollbar.call(i.children(".mCSB_scrollTools"));
                    }).bind("mouseleave touchend", function(x) {
                        i.removeClass("mCS-mouse-over");
                        if (x.type === "mouseleave") {
                            d.hideScrollbar.call(i.children(".mCSB_scrollTools"));
                        }
                    });
                    l.data({
                        bindEvent_autoHideScrollbar:true
                    });
                }
            }
        },
        scrollTo:function(e, f) {
            var i = c(this), o = {
                moveDragger:false,
                trigger:"external",
                callbacks:true,
                scrollInertia:i.data("scrollInertia"),
                scrollEasing:i.data("scrollEasing")
            }, f = c.extend(o, f), p, g = i.children(".mCustomScrollBox"), k = g.children(".mCSB_container"), r = g.children(".mCSB_scrollTools"), j = r.children(".mCSB_draggerContainer"), h = j.children(".mCSB_dragger"), t = draggerSpeed = f.scrollInertia, q, s, m, l;
            if (!k.hasClass("mCS_no_scrollbar")) {
                i.data({
                    mCS_trigger:f.trigger
                });
                if (i.data("mCS_Init")) {
                    f.callbacks = false;
                }
                if (e || e === 0) {
                    if (typeof e === "number") {
                        if (f.moveDragger) {
                            p = e;
                            if (i.data("horizontalScroll")) {
                                e = h.position().left * i.data("scrollAmount");
                            } else {
                                e = h.position().top * i.data("scrollAmount");
                            }
                            draggerSpeed = 0;
                        } else {
                            p = e / i.data("scrollAmount");
                        }
                    } else {
                        if (typeof e === "string") {
                            var v;
                            if (e === "top") {
                                v = 0;
                            } else {
                                if (e === "bottom" && !i.data("horizontalScroll")) {
                                    v = k.outerHeight() - g.height();
                                } else {
                                    if (e === "left") {
                                        v = 0;
                                    } else {
                                        if (e === "right" && i.data("horizontalScroll")) {
                                            v = k.outerWidth() - g.width();
                                        } else {
                                            if (e === "first") {
                                                v = i.find(".mCSB_container").find(":first");
                                            } else {
                                                if (e === "last") {
                                                    v = i.find(".mCSB_container").find(":last");
                                                } else {
                                                    v = i.find(e);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            if (v.length === 1) {
                                if (i.data("horizontalScroll")) {
                                    e = v.position().left;
                                } else {
                                    e = v.position().top;
                                }
                                p = e / i.data("scrollAmount");
                            } else {
                                p = e = v;
                            }
                        }
                    }
                    if (i.data("horizontalScroll")) {
                        if (i.data("onTotalScrollBack_Offset")) {
                            s = -i.data("onTotalScrollBack_Offset");
                        }
                        if (i.data("onTotalScroll_Offset")) {
                            l = g.width() - k.outerWidth() + i.data("onTotalScroll_Offset");
                        }
                        if (p < 0) {
                            p = e = 0;
                            clearInterval(i.data("mCSB_buttonScrollLeft"));
                            if (!s) {
                                q = true;
                            }
                        } else {
                            if (p >= j.width() - h.width()) {
                                p = j.width() - h.width();
                                e = g.width() - k.outerWidth();
                                clearInterval(i.data("mCSB_buttonScrollRight"));
                                if (!l) {
                                    m = true;
                                }
                            } else {
                                e = -e;
                            }
                        }
                        var n = i.data("snapAmount");
                        if (n) {
                            e = Math.round(e / n) * n - i.data("snapOffset");
                        }
                        d.mTweenAxis.call(this, h[0], "left", Math.round(p), draggerSpeed, f.scrollEasing);
                        d.mTweenAxis.call(this, k[0], "left", Math.round(e), t, f.scrollEasing, {
                            onStart:function() {
                                if (f.callbacks && !i.data("mCS_tweenRunning")) {
                                    u("onScrollStart");
                                }
                                if (i.data("autoHideScrollbar") && !i.data("alwaysShowScrollbar")) {
                                    d.showScrollbar.call(r);
                                }
                            },
                            onUpdate:function() {
                                if (f.callbacks) {
                                    u("whileScrolling");
                                }
                            },
                            onComplete:function() {
                                if (f.callbacks) {
                                    u("onScroll");
                                    if (q || s && k.position().left >= s) {
                                        u("onTotalScrollBack");
                                    }
                                    if (m || l && k.position().left <= l) {
                                        u("onTotalScroll");
                                    }
                                }
                                h.data("preventAction", false);
                                i.data("mCS_tweenRunning", false);
                                if (i.data("autoHideScrollbar") && !i.data("alwaysShowScrollbar")) {
                                    if (!g.hasClass("mCS-mouse-over")) {
                                        d.hideScrollbar.call(r);
                                    }
                                }
                            }
                        });
                    } else {
                        if (i.data("onTotalScrollBack_Offset")) {
                            s = -i.data("onTotalScrollBack_Offset");
                        }
                        if (i.data("onTotalScroll_Offset")) {
                            l = g.height() - k.outerHeight() + i.data("onTotalScroll_Offset");
                        }
                        if (p < 0) {
                            p = e = 0;
                            clearInterval(i.data("mCSB_buttonScrollUp"));
                            if (!s) {
                                q = true;
                            }
                        } else {
                            if (p >= j.height() - h.height()) {
                                p = j.height() - h.height();
                                e = g.height() - k.outerHeight();
                                clearInterval(i.data("mCSB_buttonScrollDown"));
                                if (!l) {
                                    m = true;
                                }
                            } else {
                                e = -e;
                            }
                        }
                        var n = i.data("snapAmount");
                        if (n) {
                            e = Math.round(e / n) * n - i.data("snapOffset");
                        }
                        d.mTweenAxis.call(this, h[0], "top", Math.round(p), draggerSpeed, f.scrollEasing);
                        d.mTweenAxis.call(this, k[0], "top", Math.round(e), t, f.scrollEasing, {
                            onStart:function() {
                                if (f.callbacks && !i.data("mCS_tweenRunning")) {
                                    u("onScrollStart");
                                }
                                if (i.data("autoHideScrollbar") && !i.data("alwaysShowScrollbar")) {
                                    d.showScrollbar.call(r);
                                }
                            },
                            onUpdate:function() {
                                if (f.callbacks) {
                                    u("whileScrolling");
                                }
                            },
                            onComplete:function() {
                                if (f.callbacks) {
                                    u("onScroll");
                                    if (q || s && k.position().top >= s) {
                                        u("onTotalScrollBack");
                                    }
                                    if (m || l && k.position().top <= l) {
                                        u("onTotalScroll");
                                    }
                                }
                                h.data("preventAction", false);
                                i.data("mCS_tweenRunning", false);
                                if (i.data("autoHideScrollbar") && !i.data("alwaysShowScrollbar")) {
                                    if (!g.hasClass("mCS-mouse-over")) {
                                        d.hideScrollbar.call(r);
                                    }
                                }
                            }
                        });
                    }
                    if (i.data("mCS_Init")) {
                        i.data({
                            mCS_Init:false
                        });
                    }
                }
            }
            function u(w) {
                if (i.data("mCustomScrollbarIndex")) {
                    this.mcs = {
                        top:k.position().top,
                        left:k.position().left,
                        draggerTop:h.position().top,
                        draggerLeft:h.position().left,
                        topPct:Math.round(100 * Math.abs(k.position().top) / Math.abs(k.outerHeight() - g.height())),
                        leftPct:Math.round(100 * Math.abs(k.position().left) / Math.abs(k.outerWidth() - g.width()))
                    };
                    switch (w) {
                      case "onScrollStart":
                        i.data("mCS_tweenRunning", true).data("onScrollStart_Callback").call(i, this.mcs);
                        break;

                      case "whileScrolling":
                        i.data("whileScrolling_Callback").call(i, this.mcs);
                        break;

                      case "onScroll":
                        i.data("onScroll_Callback").call(i, this.mcs);
                        break;

                      case "onTotalScrollBack":
                        i.data("onTotalScrollBack_Callback").call(i, this.mcs);
                        break;

                      case "onTotalScroll":
                        i.data("onTotalScroll_Callback").call(i, this.mcs);
                        break;
                    }
                }
            }
        },
        stop:function() {
            var g = c(this), e = g.children().children(".mCSB_container"), f = g.children().children().children().children(".mCSB_dragger");
            d.mTweenAxisStop.call(this, e[0]);
            d.mTweenAxisStop.call(this, f[0]);
        },
        disable:function(e) {
            var j = c(this), f = j.children(".mCustomScrollBox"), h = f.children(".mCSB_container"), g = f.children(".mCSB_scrollTools"), i = g.children().children(".mCSB_dragger");
            f.unbind("mousewheel focusin mouseenter mouseleave touchend");
            h.unbind("touchstart touchmove");
            if (e) {
                if (j.data("horizontalScroll")) {
                    i.add(h).css("left", 0);
                } else {
                    i.add(h).css("top", 0);
                }
            }
            g.css("display", "none");
            h.addClass("mCS_no_scrollbar");
            j.data({
                bindEvent_mousewheel:false,
                bindEvent_focusin:false,
                bindEvent_content_touch:false,
                bindEvent_autoHideScrollbar:false
            }).addClass("mCS_disabled");
        },
        destroy:function() {
            var e = c(this);
            e.removeClass("mCustomScrollbar _mCS_" + e.data("mCustomScrollbarIndex")).addClass("mCS_destroyed").children().children(".mCSB_container").unwrap().children().unwrap().siblings(".mCSB_scrollTools").remove();
            c(document).unbind("mousemove." + e.data("mCustomScrollbarIndex") + " mouseup." + e.data("mCustomScrollbarIndex") + " MSPointerMove." + e.data("mCustomScrollbarIndex") + " MSPointerUp." + e.data("mCustomScrollbarIndex"));
            c(window).unbind("resize." + e.data("mCustomScrollbarIndex"));
        }
    }, d = {
        showScrollbar:function() {
            this.stop().animate({
                opacity:1
            }, "fast");
        },
        hideScrollbar:function() {
            this.stop().animate({
                opacity:0
            }, "fast");
        },
        mTweenAxis:function(g, i, h, f, o, y) {
            var y = y || {}, v = y.onStart || function() {}, p = y.onUpdate || function() {}, w = y.onComplete || function() {};
            var n = t(), l, j = 0, r = g.offsetTop, s = g.style;
            if (i === "left") {
                r = g.offsetLeft;
            }
            var m = h - r;
            q();
            e();
            function t() {
                if (window.performance && window.performance.now) {
                    return window.performance.now();
                } else {
                    if (window.performance && window.performance.webkitNow) {
                        return window.performance.webkitNow();
                    } else {
                        if (Date.now) {
                            return Date.now();
                        } else {
                            return new Date().getTime();
                        }
                    }
                }
            }
            function x() {
                if (!j) {
                    v.call();
                }
                j = t() - n;
                u();
                if (j >= g._time) {
                    g._time = j > g._time ? j + l - (j - g._time) :j + l - 1;
                    if (g._time < j + 1) {
                        g._time = j + 1;
                    }
                }
                if (g._time < f) {
                    g._id = _request(x);
                } else {
                    w.call();
                }
            }
            function u() {
                if (f > 0) {
                    g.currVal = k(g._time, r, m, f, o);
                    s[i] = Math.round(g.currVal) + "px";
                } else {
                    s[i] = h + "px";
                }
                p.call();
            }
            function e() {
                l = 1e3 / 60;
                g._time = j + l;
                _request = !window.requestAnimationFrame ? function(z) {
                    u();
                    return setTimeout(z, .01);
                } :window.requestAnimationFrame;
                g._id = _request(x);
            }
            function q() {
                if (g._id == null) {
                    return;
                }
                if (!window.requestAnimationFrame) {
                    clearTimeout(g._id);
                } else {
                    window.cancelAnimationFrame(g._id);
                }
                g._id = null;
            }
            function k(B, A, F, E, C) {
                switch (C) {
                  case "linear":
                    return F * B / E + A;
                    break;

                  case "easeOutQuad":
                    B /= E;
                    return -F * B * (B - 2) + A;
                    break;

                  case "easeInOutQuad":
                    B /= E / 2;
                    if (B < 1) {
                        return F / 2 * B * B + A;
                    }
                    B--;
                    return -F / 2 * (B * (B - 2) - 1) + A;
                    break;

                  case "easeOutCubic":
                    B /= E;
                    B--;
                    return F * (B * B * B + 1) + A;
                    break;

                  case "easeOutQuart":
                    B /= E;
                    B--;
                    return -F * (B * B * B * B - 1) + A;
                    break;

                  case "easeOutQuint":
                    B /= E;
                    B--;
                    return F * (B * B * B * B * B + 1) + A;
                    break;

                  case "easeOutCirc":
                    B /= E;
                    B--;
                    return F * Math.sqrt(1 - B * B) + A;
                    break;

                  case "easeOutSine":
                    return F * Math.sin(B / E * (Math.PI / 2)) + A;
                    break;

                  case "easeOutExpo":
                    return F * (-Math.pow(2, -10 * B / E) + 1) + A;
                    break;

                  case "mcsEaseOut":
                    var D = (B /= E) * B, z = D * B;
                    return A + F * (.499999999999997 * z * D + -2.5 * D * D + 5.5 * z + -6.5 * D + 4 * B);
                    break;

                  case "draggerRailEase":
                    B /= E / 2;
                    if (B < 1) {
                        return F / 2 * B * B * B + A;
                    }
                    B -= 2;
                    return F / 2 * (B * B * B + 2) + A;
                    break;
                }
            }
        },
        mTweenAxisStop:function(e) {
            if (e._id == null) {
                return;
            }
            if (!window.requestAnimationFrame) {
                clearTimeout(e._id);
            } else {
                window.cancelAnimationFrame(e._id);
            }
            e._id = null;
        },
        rafPolyfill:function() {
            var f = [ "ms", "moz", "webkit", "o" ], e = f.length;
            while (--e > -1 && !window.requestAnimationFrame) {
                window.requestAnimationFrame = window[f[e] + "RequestAnimationFrame"];
                window.cancelAnimationFrame = window[f[e] + "CancelAnimationFrame"] || window[f[e] + "CancelRequestAnimationFrame"];
            }
        }
    };
    d.rafPolyfill.call();
    c.support.touch = !!("ontouchstart" in window);
    c.support.pointer = window.navigator.pointerEnabled;
    c.support.msPointer = window.navigator.msPointerEnabled;
    var a = "https:" == document.location.protocol ? "https:" :"http:";
    c.event.special.mousewheel || document.write('<script src="' + a + '//cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.0.6/jquery.mousewheel.min.js"></script>');
    c.fn.mCustomScrollbar = function(e) {
        if (b[e]) {
            return b[e].apply(this, Array.prototype.slice.call(arguments, 1));
        } else {
            if (typeof e === "object" || !e) {
                return b.init.apply(this, arguments);
            } else {
                c.error("Method " + e + " does not exist");
            }
        }
    };
})(jQ);